<?php

    // prepare INSERT query
    function db_build_insert($table, $array) {
        if (count($array) === 0) {
            return false;
        }
        
        $columns = array_keys($array);
        $values  = array_values($array);
        
        unset($array);
        
        for ($i=0, $c=count($values); $i<$c; ++$i) {
            if (is_bool($values[$i])) {
                $values[$i] = $values[$i] ? 'true' : 'false';
            } elseif (is_null($values[$i])) {
                $values[$i] = 'NULL';
            } elseif (is_string($values[$i])) {
                $values[$i] = "'" . mysql_escape_string($values[$i]) . "'";
            } elseif (!is_numeric($values[$i])) {
                return false;
            }
        }
        
        return "INSERT INTO $table ($column_quote" . implode(', ', $columns) . ") VALUES (" . implode(', ', $values) . ")";
    }
    
    
    // prepare UPDATE query
    function db_build_update($table, $array, $where) {
        if (count($array) === 0) {
            return false;
        }
        
        $columns = array_keys($array);
        $values  = array_values($array);
        $tmp     = array();
        
        unset($array);
        
        for ($i=0, $c=count($values); $i<$c; ++$i) {
            if (is_bool($values[$i])) {
                $values[$i] = $values[$i] ? 'true' : 'false';
            } elseif (is_null($values[$i])) {
                $values[$i] = 'NULL';
            } elseif (is_string($values[$i])) {
                $values[$i] = "'" . mysql_escape_string( $values[$i] ) . "'";
            } elseif (!is_numeric($values[$i])) {
                return false;
                continue;
            }
            
            $tmp[] = $columns[$i] . '=' . $values[$i];  
        }
        
        return "UPDATE $table SET " . implode(', ', $tmp) . " WHERE " . $where;
    }
  
?>
 